package com.sgs.carbon.web.modules.common.convert.dict;

import com.sgs.carbon.common.pojo.PageResult;
import com.sgs.carbon.starter.dict.core.dto.DictDataRespDTO;
import com.sgs.carbon.web.modules.common.controller.dict.vo.data.SysDictDataCreateReqVO;
import com.sgs.carbon.web.modules.common.controller.dict.vo.data.SysDictDataExcelVO;
import com.sgs.carbon.web.modules.common.controller.dict.vo.data.SysDictDataRespVO;
import com.sgs.carbon.web.modules.common.controller.dict.vo.data.SysDictDataSimpleRespVO;
import com.sgs.carbon.web.modules.common.controller.dict.vo.data.SysDictDataUpdateReqVO;
import com.sgs.carbon.web.modules.common.dal.dataobject.dict.SysDictDataDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.Collection;
import java.util.List;

/**
 * @see <a href="https://github.com/mapstruct/mapstruct"><b>mapstruct</b></a>
 *
 * @author Dave Liu
 * @date 2021-10-07
 */
@Mapper
public interface SysDictDataConvert {

    SysDictDataConvert INSTANCE = Mappers.getMapper(SysDictDataConvert.class);

    List<SysDictDataSimpleRespVO> convertList(List<SysDictDataDO> list);

    SysDictDataRespVO convert(SysDictDataDO bean);

    PageResult<SysDictDataRespVO> convertPage(PageResult<SysDictDataDO> page);

    SysDictDataDO convert(SysDictDataUpdateReqVO bean);

    SysDictDataDO convert(SysDictDataCreateReqVO bean);

    List<SysDictDataExcelVO> convertList02(List<SysDictDataDO> bean);

    DictDataRespDTO convert02(SysDictDataDO bean);

    List<DictDataRespDTO> convertList03(Collection<SysDictDataDO> list);

}
